#include <stdlib.h>
#include "../model/filme.h"
#include "aplicacao.h"


/*
 * funcao que captura os dados do filme
 * e envia para o filme.c para pesqusiar os filmes já cadastrados
 */
void pesquisar() {
    int op;
    tFilme filme;
    char buffer;
    printf("\nPesquisar Filme:\n");
    printf("Deseja pesquisar por:\n");
    printf("[1] Titulo");
    printf("\n[2] Ator");
    printf("\n[3] Genero");
    printf("\n[4] Ano\n");

    printf("Opcao: ");
    scanf("%d", &op);
    scanf("%c", &buffer);

    filme.titulo[0] = '\0';
    filme.ator[0] = '\0';
    filme.genero[0] = '\0';
    filme.ano = -1;

    printf("\n\n");
    switch (op) {
        case 1:
            printf("Titulo: ");
            gets(filme.titulo);
            sendFilme("bus", filme);
            break;
        case 2:
            printf("Ator: ");
            gets(filme.ator);
            sendFilme("bus", filme);
            break;
        case 3:
            printf("Genero: ");
            gets(filme.genero);
            sendFilme("bus", filme);
            break;
        case 4:
            printf("Ano: ");
            scanf("%d", &filme.ano);
            scanf("%c", &buffer);
            sendFilme("bus", filme);
            break;
        default:
            printf("\n\n\nOpcao invalida\n\n\n");
            break;

    }
}

/*
 * funcao que captura os dados do filme
 * e envia para o filme.c para inserir um novo
 */
void inserir() {
    tFilme filme;
    char buffer;
    printf("\nCadastrar novo Filme:\n");
    printf("Titulo: ");
    gets(filme.titulo);
    printf("Ator: ");
    gets(filme.ator);
    printf("Genero: ");
    gets(filme.genero);
    printf("Ano: ");
    scanf("%d", &filme.ano);
    scanf("%c", &buffer);

    if (!sendFilme("add", filme)) {
        printf("Ocorreu um erro inesperado ao inserir o filme!");
    }
}

/*
 * funcao que mostra o menu de opções do programa
 */
void mostraMenu() {
    printf("Locadora v1.0\n");
    printf("[1] Inserir\n");
    printf("[2] Pesquisar\n");
    printf("[3] Sair\n");
}
/*
 * funcao principal da aplicação do cliente
 */
int main() {
    int op;
    char buffer;

    mostraMenu();

    printf("Opcao: ");
    scanf("%d", &op);
    scanf("%c", &buffer);

    while (op != 3) {
        switch (op) {
            case 1:
                inserir();
                break;
            case 2:
                pesquisar();
                break;
            case 3:
                return;
                break;
            default:
                printf("\n\n\nOpcao invalida\n\n\n");
                break;
        }
        printf("\n\n\n");
        mostraMenu();

        printf("Opcao: ");
        scanf("%d", &op);
        scanf("%c", &buffer);
    }

    return 0;
}